1. Field of the Invention
Embodiments of the present invention relate generally to digital media and, more specifically, to variable bit video streams for adaptive streaming.
2. Description of the Related Art
Digital content distribution systems conventionally include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store digital content files, which can be downloaded from the content server to the content player. Each digital content file corresponds to a specific identifying title, such as “Gone with the Wind,” which is familiar to a user. The digital content file typically includes sequential content data, organized according to playback chronology, and may comprise audio data, video data, or a combination thereof.
The content player is configured to download and play a digital content file, in response to a user request selecting the title for playback. The process of playing the digital content file includes decoding and rendering audio and video data into an audio signal and a video signal, which may drive a display system having a speaker subsystem and a video subsystem. Playback typically involves a technique known in the art as “streaming,” whereby the content server sequentially transmits the digital content file to the content player, and the content player plays the digital content file while content data is received that comprises the digital content file. To account for variable latency and bandwidth within the communications network, a content buffer queues the incoming content data ahead of the content data actually being played. During moments of network congestion, which leads to lower available bandwidth, less content data is added to the content buffer, which may drain down as content data is being de-queued to support playback at a certain playback bit rate. However, during moments of high network bandwidth, the content buffer is replenished and additional buffer time is added until the content buffer is generally full again. In practical systems, the content buffer may queue content data corresponding to a time span ranging from seconds to more than a minute.
Each digital content file stored on the content server is typically encoded for a specific playback bit rate. Prior to initiating playback, the content player may measure available bandwidth from the content server and select a digital content file having an bit rate that can be supported by the measured available bandwidth. To maximize playback quality, a digital content file with the highest bit rate not exceeding the measured bandwidth is conventionally selected. To the extent the communications network can provide adequate bandwidth to download the selected digital content file while satisfying bit rate requirements, playback proceeds satisfactorily. In practice, however, available bandwidth in the communications network is constantly changing as different devices connected to the communications network perform independent tasks.
To counter the variability of network conditions, adaptive streaming may be implemented where, for each title, multiple video streams having different bit rates exist. As the network conditions vary, the content player may switch between video streams according to the network conditions. For example, video data may be downloaded from video streams encoded to higher bit rates when the network conditions are good, and, when the network conditions deteriorate, subsequent video data may be downloaded from video streams encoded to lower bit rates.
A problem arises with implementing an adaptive streaming solution when the video streams are encoded using a variable bit rate (VBR) technique. In a VBR video stream, to optimize the utilization of bandwidth or space used by a file, different video scenes are encoded based on the complexity of those video scenes. A scene of low complexity is encoded to a lower bit rate to “save” bits for scenes having a higher complexity. The average bit rate across a VBR video stream is, thus, not reflective of the bit rate of a particular scene within the VBR video stream. This poses a problem when implementing adaptive streaming because the content player selects an encoded video stream based on the average bit rate, but the specific portions of video data downloaded from the encoded video stream may be encoded to a bit rate that is much higher or much lower than the average bit rate. In such a scenario, switching between encoded video streams may not be appropriate or effective, thus reducing the overall quality of the playback.
As the foregoing illustrates, what is needed in the art is an approach for downloading digital content to a content player based on the scene complexity of the digital content.